import { defineStore } from 'pinia'
import { reactive } from 'vue'
import type { UserInfo } from './type'

export const useUserInfo = defineStore(
	'userInfo',
	() => {
		/** 用户信息 */
		const userInfo = reactive<UserInfo>({
			/** 用户名 */
			username: '',
			/** 用户年龄 */
			age: 0,
		})

		/**
		 * @author K.Sir
		 * @date 2024-03-07 20:18:22
		 * @desc: 设置用户信息
		 */
		const setUserInfo = (info: UserInfo) => {
			Object.assign(userInfo, info)
		}

		return {
			userInfo,
			setUserInfo,
		}
	},
	{
		// 配置持久化
		persist: {
			// 调整为兼容多端的API
			storage: {
				setItem(key, value) {
					uni.setStorageSync(key, value)
				},
				getItem(key) {
					return uni.getStorageSync(key)
				},
			},
		},
	}
)
